home *** CD-ROM | disk | FTP | other *** search
- // WebHelp 5.10.007
- var gaHSLoad=new Array();
- var gnMinIdx=0;
- var gnInsIdx=-1;
- var gsLoadingDivID="LoadingDiv";
- var gsLoadingMsg="Loading, click here to cancel...";
- var gaProj=null;
- var gaTocs=new Array();
- var goChunk=null;
- var gbReady=false;
- var gbToc=false;
- var gbXML=false;
- var gaRoot=new Array();
- var gnCC=-1;
- var gsTP="";
- var gaBTPs="";
- var gsCTPath="";
- var gnLT=-1;
- var gsPathSplit="\n";
- var gsBgColor="#ffffff";
- var gsBgImage="";
- var goFont=null;
- var goHFont=null;
-
- var gsMargin="0pt";
- var gsIndent="15pt";
- var gsABgColor="#cccccc";
-
- var giBookClose="";
- var giBookOpen="";
- var giBookItem="";
- var giURLItem="";
- var giNewBookClose="";
- var giNewBookOpen="";
- var giNewBookItem="";
- var giNewURLItem="";
- var gnImages=0;
- var gnLoadedImages=0;
- var gaImgs=new Array();
- var gbLoadData=false;
- var gobj=null;
- var gaTocsNs61Fix=null;
- var gbWhTHost=false;
- var gBookItems=new Array();
- var gInSync=false;
- var gbLData=false;
- var gbNeedFillStub=false;
- var gbLoadToc=false;
-
- function chunkInfoQueue()
- {
- this.aContent=new Array();
- this.inQueue=function(cInfo)
- {
- this.aContent[this.aContent.length]=cInfo;
- }
- this.deQueue=function()
- {
- var cInfo=null;
- if(this.aContent.length>0)
- {
- cInfo=this.aContent[0];
- for(var i=1;i<this.aContent.length;i++)
- this.aContent[i-1]=this.aContent[i];
- this.aContent.length--;
- }
- return cInfo;
- }
- this.length=function()
- {
- return this.aContent.length;
- }
- }
-
- var gchunkRequestQueue=new chunkInfoQueue();
-
- function chunkInfo(nIdx, bLocal)
- {
- this.nIdx=nIdx;
- this.bLocal=bLocal;
- }
-
- function setBackground(sBgImage)
- {
- gsBgImage=sBgImage;
- }
-
- function setBackgroundcolor(sBgColor)
- {
- gsBgColor=sBgColor;
- }
-
- function setFont(sType,sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration)
- {
- var vFont=new whFont(sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration);
- if(sType=="Normal") goFont=vFont;
- else if(sType=="Hover") goHFont=vFont;
- }
-
- function setActiveBgColor(sBgColor){gsABgColor=sBgColor;}
-
- function setMargin(sMargin){gsMargin=sMargin;}
-
- function setIndent(sIndent){gsIndent=sIndent;}
-
- function setIcon(sType,sURL)
- {
- if(sType=="BookOpen")
- giBookOpen=sURL;
- else if(sType=="BookClose")
- giBookClose=sURL;
- else if(sType=="Item")
- giBookItem=sURL;
- else if(sType=="RemoteItem")
- giURLItem=sURL;
- else if(sType=="NewBookClose")
- giNewBookClose=sURL;
- else if(sType=="NewBookOpen")
- giNewBookOpen=sURL;
- else if(sType=="NewItem")
- giNewBookItem=sURL;
- else if(sType=="NewRemoteItem")
- giNewURLItem=sURL;
- }
-
- function bookItem(sTarget,sURL)
- {
- if(sTarget)
- this.sTarget=sTarget;
- else
- this.sTarget="bsscright";
- this.sURL=sURL;
- }
-
- function addBookItem(sBookId,sTarget,sURL)
- {
- gBookItems[sBookId]=new bookItem(sTarget,sURL);
- }
-
- function tocChunk(sPPath,sDPath)
- {
- this.sPPath=sPPath;
- this.sDPath=sDPath;
- this.nMI=-1;
- this.aTocs=null;
- }
-
- function addTocChunk(sPPath,sDPath)
- {
- var oChunk=new tocChunk(sPPath,sDPath);
- gaTocs[gaTocs.length]=oChunk;
- return oChunk;
- }
-
- function isHSLoad(nIdx)
- {
- for(var i=0;i<gaHSLoad.length;i++)
- if(gaHSLoad[i]==nIdx)
- return true;
- return false;
- }
-
- function setHSLoad(nIdx)
- {
- if(!isHSLoad(nIdx))
- {
- var len=gaHSLoad.length;
- for(var i=0;i<len;i++)
- if(gaHSLoad[i]==-1)
- {
- gaHSLoad[i]=nIdx;
- return;
- }
- gaHSLoad[len]=nIdx;
- }
- }
-
- function setHSUnLoad(nIdx)
- {
- if(isHSLoad(nIdx))
- {
- for(var i=0;i<gaHSLoad.length;i++)
- if(gaHSLoad[i]==nIdx)
- {
- gaHSLoad[i]=-1;
- return;
- }
- }
- }
-
- function removeLoadingDiv()
- {
- var eLoadingDiv=getElement(gsLoadingDivID);
- if(eLoadingDiv)
- removeThis(eLoadingDiv);
- }
-
- function checkBookItem(nIdx)
- {
- if(!gInSync)
- {
- var sBookId=getBookId(nIdx);
- if(gBookItems[sBookId])
- {
- window.open(gBookItems[sBookId].sURL,gBookItems[sBookId].sTarget);
- }
- }
- }
-
- function insertBookItems(nIdx,num)
- {
- checkBookItem(nIdx);
- var sChildBookId=getCBId(nIdx);
- var eChildDiv=getElement(sChildBookId);
- if(eChildDiv){
- if((eChildDiv.childNodes&&eChildDiv.childNodes.length==0)||
- (eChildDiv.all&&eChildDiv.all.length==0)){
- var sHTML=writeBookItems(nIdx,num);
- eChildDiv.innerHTML=sHTML;
- setTimeout("syncInit()",1);
- }
- }
- ExpandIt(nIdx);
- }
-
- function isBookEmpty(nIdx)
- {
- var num=getItemContentsNum(nIdx);
- if (num>0)
- {
- var nCIdx=0;
- do {
- nCIdx++;
- var i=nIdx+nCIdx;
- var nItemType=getItemType(i);
- if(nItemType==1){
- if (!isBookEmpty(i))
- return false;
- }
- else if(nItemType==4){
- var sSrc=getRefURL(i);
- var nProj=getProject(sSrc);
- if(nProj!=-1){
- sSrc=gaRoot[nProj].sToc;
- if(sSrc)
- return false;
- }
- }
- else if(nItemType==2||nItemType==16||nItemType==8)
- return false;
- } while(nCIdx<num);
- }
- return true;
- }
-
- function writeBook(nIdx)
- {
- var sIcon=getBookImage(nIdx,true);
- var sName=_textToHtml(getItemName(nIdx));
- sIcon=_textToHtml_nonbsp(sIcon);
-
- var nType=getItemType(nIdx);
- var bLocal=(nType==1);
- var bLocalProject=(nType!=4);
-
- var sHTML="<div id=\""+getPBId(nIdx)+"\" class=";
- if(bLocal)
- {
- if (!isBookEmpty(nIdx))
- {
- sHTML+="parent><p><nobr><a id=\""+getBookId(nIdx)+"\" href=\"javascript:void(0);\" onfocus=\"markBook("+nIdx+");\" onclick=\"";
- sHTML+="insertBookItems("+nIdx+", "+getItemContentsNum(nIdx);
- sHTML+=");return false;\" title=\""+sName+"\"><img alt=\"Book\" name=\""+getBId(nIdx)+"\" src=\""+sIcon+"\" border=0 align=\"absmiddle\">";
- sHTML+=" "+sName+"</a></nobr></p></div>";
- var sURL=_textToHtml_nonbsp(getItemURL(nIdx));
- if(sURL!="")
- addBookItem(getBookId(nIdx),_textToHtml_nonbsp(getTopicTarget(nIdx)),sURL);
- sHTML+="<div id=\""+getCBId(nIdx)+"\" class=child></div>";
- }
- else
- sHTML="";
- }
- else
- {
- sHTML+="stub></div>";
- gbNeedFillStub=true;
- setTimeout("fillStub("+nIdx+","+bLocalProject+");",100);
- }
- return sHTML;
- }
-
- function checkFillStub()
- {
- if(!gbLData)
- {
- if(gchunkRequestQueue.length()>0)
- {
- var cInfo=gchunkRequestQueue.deQueue();
- if(cInfo)
- {
- fillStub(cInfo.nIdx,cInfo.bLocal);
- return;
- }
- }
- }
- if(gbNeedFillStub)
- {
- gbNeedFillStub=false;
- setTimeout("syncInit()",1);
- }
- }
-
- function fillStub(nIdx,bLocalProject)
- {
- if(!gbLData)
- {
- gbLData=true;
- var sObj=getElement(getPBId(nIdx));
- if(sObj!=null)
- {
- tocExpandHelpSet(nIdx,bLocalProject);
- gbNeedFillStub=false;
- setTimeout("syncInit()",1);
- }
- else
- setTimeout("fillStub("+nIdx+","+bLocalProject+");",100);
- }
- else
- gchunkRequestQueue.inQueue(new chunkInfo(nIdx,bLocalProject));
- }
-
- function getBookId(nIdx){return "B_"+nIdx;}
-
- function getItemId(nIdx){return "I_"+nIdx;}
-
- function markBook(nIdx)
- {
- var obj=getElement(getItemId(nIdx));
- if(obj==null)
- obj=getElement(getBookId(nIdx));
- if(gbNav6)
- {
- gobj=obj;
- setTimeout("delayMarkObj();",1);
- }
- else
- markObj(obj);
- }
-
- function delayMarkObj()
- {
- if(gobj)
- {
- markObj(gobj);
- gobj=null;
- }
- }
-
- function markObj(obj)
- {
- if(obj!=null)
- {
- HighLightElement(obj,gsABgColor,"transparent");
- var sPath=calTocPath(obj);
- if(gsCTPath!=sPath)
- gsCTPath=sPath;
- }
- }
-
- function markItem(nIdx)
- {
- var obj=getElement(getItemId(nIdx));
- if(gbNav6)
- {
- gobj=obj;
- setTimeout("delayMarkObj();",1);
- }
- else
- markObj(getElement(getItemId(nIdx)));
- }
-
- function calTocPath(obj)
- {
- var sPath=getInnerText2(obj);
- var pObj=getParentNode(obj);
- do
- {
- while(pObj!=null&&!isCBId(pObj.id)) pObj=getParentNode(pObj);
- if(pObj!=null)
- {
- var nId=getIdByCBId(pObj.id);
- var sObj=getElement(getPBId(nId));
- if(sObj!=null)
- {
- var objs=getItemsByBook(sObj);
- for(var i=0;i<objs.length;i++)
- {
- var sText=getInnerText2(objs[i]);
- if(sText.length!=0)
- {
- sPath=sText+gsPathSplit+sPath;
- break;
- }
- }
- }
- pObj=getParentNode(pObj);
- }
- }while(pObj!=null);
- return sPath;
- }
-
- function writeAnItem(nIdx)
- {
- var sTarget=_textToHtml_nonbsp(getTopicTarget(nIdx));
- var sIcon=getItemIcon(nIdx,0);
- if(sIcon=="")
- {
- var nItemType=getItemType(nIdx);
- if(nItemType&2)
- sIcon=getItemImage(nIdx,false);
- else
- sIcon=getItemImage(nIdx,true);
- }
- sIcon=_textToHtml_nonbsp(sIcon);
- var sName=_textToHtml(getItemName(nIdx));
- var sHTML="<p><nobr><a id=\""+getItemId(nIdx)+"\" onfocus=\"markItem("+nIdx+");\""
- var sAltString="";
- if(nItemType&2)
- sAltString="Page";
- else
- sAltString="Remote Page";
- if(sTarget!="")
- sHTML+="target=\""+sTarget+"\" ";
- sHTML+="href=\""+_textToHtml_nonbsp(getItemURL(nIdx))+"\" title=\""+sName+"\"><img alt=\""+sAltString+"\" src=\""+sIcon+"\" border=0 align=\"absmiddle\"> "+sName+"</a></nobr></p>";
- return sHTML;
- }
-
- function writeBookItems(nIdx,num)
- {
- var sHTML="";
- if(num>0){
- var nCIdx=0;
- do{
- nCIdx++;
- var i=nIdx+nCIdx;
- var nItemType=getItemType(i);
- if(nItemType==1||nItemType==4||nItemType==8){
- sHTML+=writeBook(i);
- nCIdx+=getItemContentsNum(i);
- }
- else if(nItemType==2||nItemType==16){
- sHTML+=writeAnItem(i);
- }
- }
- while(nCIdx<num);
- }
- return sHTML;
- }
-
- function tocExpandHelpSet(nIdx,bLocal)
- {
- checkBookItem(nIdx);
- removeLoadingDiv();
- if(!isHSLoad(nIdx))
- {
- setHSLoad(nIdx);
- var sSrc="";
- if(bLocal){
- var oChunk=getChunk(nIdx);
- if(oChunk)
- {
- goChunk=addTocChunk(oChunk.sPPath,oChunk.sDPath);
- sSrc=oChunk.aTocs[nIdx-oChunk.nMI].sRefURL;
- }
- }
- else{
- sSrc=getRefURL(nIdx);
- var nProj=getProject(sSrc);
- if(nProj!=-1)
- {
- sSrc=gaRoot[nProj].sToc;
- if(sSrc)
- goChunk=addTocChunk(gaProj[nProj].sPPath,gaProj[nProj].sDPath);
- else
- goChunk=null;
- }
- else
- goChunk=null;
- }
- if(goChunk)
- {
- PrepareLoading(nIdx);
- gbToc=false;
- loadData2(goChunk.sPPath+goChunk.sDPath+sSrc);
- }
- else
- {
- gbLData=false;
- checkFillStub();
- }
- }
- }
-
- function getProject(sSrc)
- {
- for(var i=0;i<gaProj.length;i++)
- if(isSamePath(getPath(sSrc),gaProj[i].sPPath))
- return i;
- return -1;
- }
-
- function getPath(sPath)
- {
- if(sPath!="")
- {
- sPath=_replaceSlash(sPath);
- var nPosFile=sPath.lastIndexOf("/");
- sPath=sPath.substring(0,nPosFile+1);
- }
- return sPath;
- }
-
- function isSamePath(sPath1,sPath2)
- {
- return (sPath1.toLowerCase()==sPath2.toLowerCase());
- }
-
- function PrepareLoading(nIdx)
- {
- gnInsIdx=nIdx;
- if(!gsTP)
- {
- var oObj=getElement(getPBId(gnInsIdx));
- if(oObj)
- oObj.insertAdjacentHTML("afterEnd",writeLoadingDiv(nIdx));
- }
- }
-
- function writeLoadingDiv(nIdx)
- {
- return"<div id=\""+gsLoadingDivID+"\" class=parent onclick=\"removeLoadingDiv();\" style=\"padding-left:4px;background-color:ivory;border-width:1;border-style:solid;border-color:black;width:150px;\">"+gsLoadingMsg+"</div>";
- }
-
- function getItemName(nIdx)
- {
- var oChunk=getChunk(nIdx);
- if(oChunk)
- return oChunk.aTocs[nIdx-oChunk.nMI].sItemName;
- else
- return null;
- }
-
- function getItemContentsNum(nIdx)
- {
- var oChunk=getChunk(nIdx);
- if(oChunk)
- return oChunk.aTocs[nIdx-oChunk.nMI].nContents;
- else
- return null;
- }
-
- function getItemType(nIdx)
- {
- var oChunk=getChunk(nIdx);
- if(oChunk)
- return oChunk.aTocs[nIdx-oChunk.nMI].nType;
- else
- return 0;
- }
-
- function getItemURL(nIdx)
- {
- var oChunk=getChunk(nIdx);
- if(oChunk)
- {
- var sPath=oChunk.aTocs[nIdx-oChunk.nMI].sItemURL;
- if(!(sPath==null||sPath==""))
- {
- return _getFullPath(oChunk.sPPath,sPath);
- }
- }
- return "";
- }
-
- function getRefURL(nIdx)
- {
- var oChunk=getChunk(nIdx);
- if(oChunk)
- {
- var sPath=oChunk.aTocs[nIdx-oChunk.nMI].sRefURL;
- if(!(sPath==null||sPath==""))
- {
- return _getFullPath(oChunk.sPPath,sPath)
- }
- }
- return "";
- }
-
- function getTopicTarget(nIdx)
- {
- var oChunk=getChunk(nIdx);
- if(oChunk)
- {
- if(typeof(oChunk.aTocs[nIdx-oChunk.nMI].sTarget)!="undefined")
- return oChunk.aTocs[nIdx-oChunk.nMI].sTarget;
- }
- return "";
- }
-
- function getItemIcon(nIdx,nIconIdx)
- {
- var oChunk=getChunk(nIdx);
- if(oChunk)
- {
- if(typeof(oChunk.aTocs[nIdx-oChunk.nMI].sIconRef)!="undefined")
- {
- var sIconRef=oChunk.aTocs[nIdx-oChunk.nMI].sIconRef;
- var nIndex=sIconRef.indexOf(";");
- while(nIconIdx-->0&&nIndex!=-1)
- {
- sIconRef=sIconRef.substring(nIndex+1);
- nIndex=sIconRef.indexOf(";");
- }
- if(nIconIdx<0)
- {
- if(nIndex!=-1)
- sIconRef=sIconRef.substring(0,nIndex);
- return _getFullPath(oChunk.sPPath,sIconRef)
- }
- }
- }
- return "";
- }
-
- function TocWriteClassStyle()
- {
- var sStyle="<STYLE TYPE='text/css'>\n";
- if(gsBgImage)
- sStyle+="body {border-top:"+gsBgColor+" 1px solid;}\n";
- else
- sStyle+="body {border-top:black 1px solid;}\n";
- sStyle+="P {"+getFontStyle(goFont)+"margin-top:"+gsMargin+";margin-bottom:"+gsMargin+";}\n";
- sStyle+="DIV {margin-top:"+gsMargin+";margin-bottom:"+gsMargin+";}\n";
- sStyle+=".parent {margin-left:0pt;}\n";
- sStyle+=".stub {margin-left:0pt;display:none}\n";
- sStyle+=".child {display:none;margin-left:"+gsIndent+";}\n";
- sStyle+="A:link {"+getFontStyle(goFont)+"}\n";
- sStyle+="A:visited {"+getFontStyle(goFont)+"}\n";
- sStyle+="A:active {background-color:"+gsABgColor+";}\n";
- sStyle +="A:hover {"+getFontStyle(goHFont)+"}\n";
- sStyle+="</STYLE>";
- document.write(sStyle);
- }
-
- function TocWriteFixedWidth(bBegin,nWidth)
- {
- if((gbIE4)&&(gbMac)&&(!gbIE5)){
- if(bBegin)
- document.write("<table width="+nWidth+" border=0><tr><td>");
- else
- document.write("</td></tr></table>");
- }
- }
-
- function TocInitPage()
- {
- var tempColl=getItemsByBook(document.body);
- if(tempColl.length>0)
- tempColl[0].focus();
- }
-
- function getItemsFromObj(obj)
- {
- var aAnchor=new Array();
- var tempColl=getChildrenByTag(obj,"P");
- if(tempColl&&tempColl.length>0)
- {
- var anobr=new Array();
- for(var i=0;i<tempColl.length;i++)
- {
- var tempNobr=getChildrenByTag(tempColl[i],"NOBR");
- if(tempNobr&&tempNobr.length>0)
- for(var j=0;j<tempNobr.length;j++)
- anobr[anobr.length]=tempNobr[j];
- }
- for(var s=0;s<anobr.length;s++)
- {
- var tempAnchor=getChildrenByTag(anobr[s],"A");
- if(tempAnchor&&tempAnchor.length>0)
- for(var u=0;u<tempAnchor.length;u++)
- aAnchor[aAnchor.length]=tempAnchor[u];
- }
- }
- return aAnchor;
- }
-
- function getItemsByBook(obj)
- {
- var aAnchor=new Array();
- var aTAnchor=getItemsFromObj(obj);
- for(var i=0;i<aTAnchor.length;i++)
- aAnchor[aAnchor.length]=aTAnchor[i];
- var tempBook=getChildrenByTag(obj,"DIV");
- if(tempBook&&tempBook.length>0)
- for(var j=0;j<tempBook.length;j++)
- {
- var aTAnchorDiv=getItemsFromObj(tempBook[j]);
- for(var s=0;s<aTAnchorDiv.length;s++)
- aAnchor[aAnchor.length]=aTAnchorDiv[s];
- }
- return aAnchor;
- }
-
- function ExpandIt(nId)
- {
- if(!gsTP)
- ExpandIt2(nId,false);
- }
-
- function ExpandIt2(nId,bForceOpen)
- {
- var oC=TocExpand(nId,true,bForceOpen);
- var nNewScroll=document.body.scrollTop;
- if(oC.style.display=="block"){
- var nTop=oC.offsetTop;
- var nBottom=nTop+oC.offsetHeight;
- if(document.body.scrollTop+document.body.clientHeight<nBottom){
- nNewScroll=nBottom-document.body.clientHeight;
- }
- if(nBottom-nTop>document.body.clientHeight){
- nNewScroll=nTop-20;
- }
- }
- document.body.scrollTop=nNewScroll;
- }
-
- function TocExpand(nId,bChangeImg,bForceOpen)
- {
- var oDiv=getElement(getCBId(nId));
- if(oDiv==null) return null;
-
- var whichIm=document.images[getBId(nId)];
- if((oDiv.style.display!="block")||bForceOpen){
- oDiv.style.display="block";
- if(bChangeImg){
- var sPath=getPath(whichIm.src);
- sPath=_getFullPath(sPath,getBookImage(nId,false));
- whichIm.src=sPath;
- }
- }else{
- oDiv.style.display="none";
- if(bChangeImg){
- var sPath=getPath(whichIm.src);
- sPath=_getFullPath(sPath,getBookImage(nId,true));
- whichIm.src=sPath;
- }
- if(gbMac&&gbIE5){
- this.parent.document.getElementById("tocIFrame").style.width="101%";
- this.parent.document.getElementById("tocIFrame").style.width="100%";
- }
- }
- return oDiv;
- }
-
- function getChunkId(n)
- {
- var nCan=-1;
- for(var i=0;i<gaTocs.length;i++)
- if(gaTocs[i].nMI<=n&&gaTocs[i].nMI!=-1)
- {
- if(nCan==-1)
- nCan=i;
- else
- if(gaTocs[i].nMI>=gaTocs[nCan].nMI)
- nCan=i;
- }
- if(nCan!=-1)
- return nCan;
- else
- return -1;
- }
-
- function getChunk(n)
- {
- if(gnCC!=-1&&gaTocs[gnCC].nMI<=n&&(gnCC==gaTocs.length-1||
- gaTocs[gnCC+1].nMI>n))
- {
- return gaTocs[gnCC];
- }
- else{
- gnCC=getChunkId(n);
- if(gnCC!=-1)
- return gaTocs[gnCC];
- else
- return null;
- }
- }
-
- function getBookImage(nIdx,bClosed)
- {
- var nIdx=bClosed?0:1;
- var sIcon=getItemIcon(nIdx,nIdx);
- if(sIcon=="")
- if(bClosed)
- sIcon=giBookClose;
- else
- sIcon=giBookOpen;
- return _getFullPath(gaProj[0].sPPath,sIcon);
- }
-
- function getItemImage(nIdx,bRemote)
- {
- var sIcon=getItemIcon(nIdx,0);
- if(sIcon=="")
- if(bRemote)
- sIcon=giURLItem;
- else
- sIcon=giBookItem;
- return _getFullPath(gaProj[0].sPPath,sIcon);
- }
-
- function getInnerText2(obj)
- {
- var sText=getInnerText(obj);
- if(sText.length>0&&!gbOpera7)
- sText=sText.substring(1);
- return sText;
- }
-
- function expandToc(oObj,sRest,aIdList)
- {
- var len=aIdList.length;
- var nPos=sRest.indexOf(gsPathSplit);
- if(nPos!=-1)
- {
- sPart=sRest.substring(0,nPos);
- sRest=sRest.substring(nPos+1);
- }
- else
- {
- sPart=sRest;
- var aTagAs=getItemsByBook(oObj);
- for(var s=0;s<aTagAs.length;s++)
- {
- var sText=getInnerText2(aTagAs[s]);
- if(sText==sPart)
- {
- aIdList[len]=aTagAs[s];
- return 1;
- }
- }
- return 0;
- }
-
- var aChildren=getChildrenByTag(oObj,"DIV");
- for(var i=0;i<aChildren.length;i++)
- {
- var sPId=aChildren[i].id;
- if(!isPBId(sPId))
- continue;
- var sText=getInnerText2(aChildren[i]);
- if(sText!=sPart)
- continue;
- aIdList[len]=getIdByPBId(sPId);
- var sCId=getCBId(aIdList[len]);
- var oCObj=getElement(sCId);
- if(oCObj)
- {
- if(oCObj.innerHTML=="")
- {
- var obj=getItemsByBook(aChildren[i]);
- if(obj.length>0)
- {
- if(gbNav6)
- {
- var sCommand=obj[0].getAttribute("onClick");
- var nCommand=sCommand.indexOf(";");
- sCommand=sCommand.substring(0,nCommand);
- setTimeout(sCommand,1);
- }
- else
- obj[0].click();
- }
- return -1;
- }
- var nRet=expandToc(oCObj,sRest,aIdList);
- if(nRet)
- return nRet;
- }
- }
- aIdList.length=len;
- return 0;
- }
-
- function getIdByPBId(sPId)
- {
- return parseInt(sPId.substring(2,sPId.length-1));
- }
-
- function getIdByCBId(sCId)
- {
- return parseInt(sCId.substring(2,sCId.length-1));
- }
-
- function isPBId(sId)
- {
- return (sId&&sId.indexOf("B_")==0&&sId.lastIndexOf("P")==sId.length-1);
- }
-
- function isCBId(sId)
- {
- return (sId&&sId.indexOf("B_")==0&&sId.lastIndexOf("C")==sId.length-1);
- }
-
- function getBId(nIdx)
- {
- return "B_"+nIdx;
- }
-
- function getPBId(nIdx)
- {
- return getBId(nIdx)+"P";
- }
-
- function getCBId(nIdx)
- {
- return getBId(nIdx)+"C";
- }
-
- function getClosestTocPath(aPaths)
- {
- var nMaxSimilarity=0;
- var nThatIndex=-1;
- var sPath=null;
- if(aPaths.length==0) return sPath;
- for(var i=0;i<aPaths.length;i++)
- {
- var nSimilarity=comparePath(gsCTPath,aPaths[i]);
- if(nSimilarity>nMaxSimilarity)
- {
- nMaxSimilarity=nSimilarity;
- nThatIndex=i;
- }
- }
- if(nThatIndex!=-1)
- sPath=aPaths[nThatIndex];
- else
- sPath=aPaths[0];
- return sPath;
- }
-
- function comparePath(sPath1,sPath2)
- {
- var nMaxSimilarity=0;
- var nStartPos1=0;
- var nPos1=-1;
- var nStartPos2=0;
- var nPos2=-1;
- do{
- var sCheck1=null;
- var sCheck2=null;
- nPos1=sPath1.indexOf(gsPathSplit,nStartPos1);
- if(nPos1!=-1)
- {
- sCheck1=sPath1.substring(nStartPos1,nPos1);
- nStartPos1=nPos1+1;
- }
- else
- {
- sCheck1=sPath1.substring(nStartPos1);
- nStartPos1=-1;
- }
- nPos2=sPath2.indexOf(gsPathSplit,nStartPos2);
- if(nPos1!=-1)
- {
- sCheck2=sPath2.substring(nStartPos2,nPos2);
- nStartPos2=nPos2+1;
- }
- else
- {
- sCheck2=sPath2.substring(nStartPos2);
- nStartPos2=-1;
- }
- if(sCheck1==sCheck2)
- nMaxSimilarity++;
- else
- break;
- }while(nStartPos1!=-1&&nStartPos2!=-1);
- return nMaxSimilarity;
- }
-
- function getTocPaths(oTopicParam)
- {
- var aRelTocPaths=oTopicParam.aPaths;
- var aPaths=new Array();
- for(var i=0;i<gaProj.length;i++)
- if(isSamePath(gaProj[i].sPPath,oTopicParam.sPPath))
- {
- for(var j=0;j<aRelTocPaths.length;j++)
- for (var k=0;k<gaRoot[i].aRPath.length;k++)
- {
- var sPath=gaRoot[i].aRPath[k]+aRelTocPaths[j];
- aPaths[aPaths.length]=sPath.substring(1);
- }
- break;
- }
- return aPaths;
- }
-
- function syncInit()
- {
- if(gsTP&&!gbNeedFillStub)
- {
- gInSync=true;
- var obj=document.body;
- var aIdList=new Array();
- var nRet=expandToc(obj,gsTP,aIdList);
- if(nRet!=-1)
- {
- if(nRet==1)
- {
- if(aIdList.length)
- for(var i=0;i<aIdList.length-1;i++)
- ExpandIt2(aIdList[i],true);
- gsCTPath=gsTP;
- if(!gbIE55)
- aIdList[aIdList.length-1].focus();
- else
- HighLightElement(aIdList[aIdList.length-1],gsABgColor,"transparent");
- }
- var aPaths=gaBTPs;
- gsTP=null;
- gaBTPs=null;
- if(aPaths!=null)
- {
- var sPath=getClosestTocPath(aPaths);
- if(sPath!=null)
- {
- gsTP=sPath;
- setTimeout("syncInit()",1);
- }
- }
- }
- gInSync=false;
- }
- }
-
- function loadToc()
- {
- if(!gbLoadToc)
- {
- var oResMsg=new whMessage(WH_MSG_GETPROJINFO,this,1,null);
- if(SendMessage(oResMsg)&&oResMsg.oParam)
- {
- gbLoadToc=true;
- var oProj=oResMsg.oParam;
- gaProj=oProj.aProj;
- gbXML=oProj.bXML;
- load1B1();
- }
- }
- }
-
- function load1B1()
- {
- if(gnLT+1<gaProj.length)
- for(var i=gnLT+1;i<gaProj.length;i++)
- if(gaProj[i].sToc)
- {
- gbToc=true;
- gnLT=i;
- setTimeout("loadTocInfo()",1);
- return true;
- }
- return false;
- }
-
- function loadTocInfo()
- {
- loadData2(gaProj[gnLT].sPPath+gaProj[gnLT].sDPath+gaProj[gnLT].sToc);
- }
-
- function loadData2(sFile)
- {
- if(gbXML)
- loadDataXML(sFile);
- else
- loadData(sFile);
- }
-
- function projReady(sRoot,aProj)
- {
- if(gaRoot.length<=gnLT||!gaRoot[gnLT])
- gaRoot[gnLT]=new Object();
- gaRoot[gnLT].sToc=sRoot;
-
- if(gnLT==0)
- {
- gaRoot[gnLT].aRPath=new Array();
- gaRoot[gnLT].aRPath[0]=gsPathSplit;
- }
-
- updatePTPath(gnLT,aProj);
-
- if(!((gnLT+1<gaProj.length)&&load1B1()))
- {
- gbReady=true;
- if(gbIE4)
- setTimeout("loadImages();",1);
- else
- setTimeout("loadTData();",1);
- }
- }
-
- function loadTData()
- {
- if(gaProj[0].sToc!="")
- {
- gbLData=true;
- goChunk=addTocChunk(gaProj[0].sPPath,gaProj[0].sDPath);
- gbToc=false;
- loadData2(gaProj[0].sPPath+gaProj[0].sDPath+gaRoot[0].sToc);
- }
- }
-
- function updatePTPath(n,aProj)
- {
- if(aProj)
- for(var i=0;i<aProj.length;i++)
- {
- var sFullPath=_getFullPath(gaProj[n].sPPath,aProj[i].sPPath);
- for(var j=0;j<gaProj.length;j++)
- if(isSamePath(sFullPath,gaProj[j].sPPath))
- {
- if(gaRoot.length<=j||!gaRoot[j])
- gaRoot[j]=new Object();
- if(!gaRoot[j].aRPath)
- gaRoot[j].aRPath=new Array();
-
- if(gaRoot[n].aRPath)
- for(var k=0;k<gaRoot[n].aRPath.length;k++)
- {
- var bDup=false;
- var sTFPath=gaRoot[n].aRPath[k]+aProj[i].sRPath;
- for(var l=0;l<gaRoot[j].aRPath.length;l++)
- if(gaRoot[j].aRPath[l]==sTFPath)
- {
- bDup=true;
- break;
- }
- if(!bDup)
- gaRoot[j].aRPath[gaRoot[j].aRPath.length]=sTFPath;
- }
- else
- gaRoot[j].aRPath[gaRoot[j].aRPath.length]=aProj[i].sRPath;
- break;
- }
- }
- }
-
- function onLoadXMLError()
- {
- if(gbToc)
- {
- var sRoot="";
- var aRProj=new Array();
- projReady(sRoot,aRProj);
- }
- else
- {
- var aToc=new Array();
- putData(aToc)
- }
- }
-
- function putDataXML(xmlDoc,sDocPath)
- {
- if(gbToc)
- {
- var tocNode=xmlDoc.getElementsByTagName("toc")[0];
- if(tocNode)
- {
- var sRoot=tocNode.getAttribute("root");
- var rmtProject=tocNode.getElementsByTagName("project");
- var aRProj=new Array();
- if(rmtProject.length>0)
- {
- for(var i=0;i<rmtProject.length;i++)
- {
- aRProj[i]=new Object();
- var sURL=rmtProject[i].getAttribute("url");
- if(sURL)
- {
- if(sURL.lastIndexOf("/")!=sURL.length-1)
- sURL+="/";
- }
- aRProj[i].sPPath=sURL;
- aRProj[i].sRPath = "";
- var oSubPath = rmtProject[i].getElementsByTagName("subpath")[0];
- if (oSubPath)
- {
- while (oSubPath)
- {
- aRProj[i].sRPath += oSubPath.getAttribute("name") + "\n";
- oSubPath = oSubPath.getElementsByTagName("subpath")[0];
- }
- }
- else
- aRProj[i].sRPath=rmtProject[i].getAttribute("path");
- }
- }
- projReady(sRoot,aRProj);
- }
- }
- else
- {
- var chunkNode=xmlDoc.getElementsByTagName("tocdata")[0];
- if(chunkNode)
- {
- var aToc=new Array();
- processBook(chunkNode,aToc);
- putData(aToc);
- }
- }
- }
-
- function processBook(node,aToc)
- {
- var i=0;
- var entry=null;
- var prevEntry=null;
- var oChild=node.firstChild;
- do{
- if(oChild)
- {
- if(oChild.nodeName.indexOf("#")!=0)
- {
- var sName=oChild.getAttribute("name");
- var sURL=oChild.getAttribute("url");
- var sRef=oChild.getAttribute("ref");
- var sTarget=oChild.getAttribute("target");
- var sIcons=oChild.getAttribute("images");
- var item=new Object();
- item.sItemName=sName;
- if(sTarget)
- item.sTarget=sTarget;
- if(sIcons)
- item.sIconRef=sIcons;
- if(sURL==null) sURL="";
-
- item.sItemURL=sURL;
-
- if(oChild.nodeName=="book")
- {
- item.nType=1;
- aToc[aToc.length]=item;
- var nCurrPos=aToc.length;
- processBook(oChild,aToc);
- item.nContents=aToc.length-nCurrPos;
- }
- else if(oChild.nodeName=="item")
- {
- item.nType=2;
- item.nContents=0;
- aToc[aToc.length]=item;
- }
- else if(oChild.nodeName=="remoteitem")
- {
- item.nType=16;
- item.nContents=0;
- aToc[aToc.length]=item;
- }
- else if(oChild.nodeName=="project")
- {
- if(sRef)
- {
- if(sRef.lastIndexOf("/")!=sRef.length-1)
- sRef+="/";
- }
- item.nType=4;
- item.sRefURL=sRef;
- item.nContents=0;
- aToc[aToc.length]=item;
- }
- else if(oChild.nodeName=="chunk")
- {
- item.nType=8;
- item.sRefURL=sRef;
- item.nContents=0;
- aToc[aToc.length]=item;
- }
- }
- }
- else
- break;
- oChild=oChild.nextSibling;
- }while(true);
- }
-
- function putData(aTocs)
- {
- gaTocsNs61Fix=aTocs;
- setTimeout("realPutData();",1);
- }
-
- function realPutData()
- {
- removeLoadingDiv();
- var aTocs=gaTocsNs61Fix;
- if(!aTocs) return;
- if(goChunk)
- {
- var n=gnMinIdx;
- goChunk.nMI=gnMinIdx;
- goChunk.aTocs=aTocs;
- gnMinIdx+=aTocs.length;
- if(gnInsIdx!=-1)
- {
- var oObj=getElement(getPBId(gnInsIdx));
- if(oObj)
- {
- oObj.insertAdjacentHTML("afterEnd",writeBookItems(n-1,aTocs.length));
- setTimeout("syncInit()",1);
- }
- }
- else{
- document.body.insertAdjacentHTML("beforeEnd",writeBookItems(n-1,aTocs.length));
- var oParam=new Object();
- oParam.oTocInfo=null;
- var oMsg=new whMessage(WH_MSG_GETTOCPATHS,this,1,oParam);
- if(SendMessage(oMsg))
- {
- if(oMsg.oParam.oTocInfo)
- syncWithPaths(oMsg.oParam.oTocInfo);
- }
- }
- }
- gbLData=false;
- checkFillStub();
- }
-
- function syncWithPaths(oTopicParam)
- {
- var aPaths=getTocPaths(oTopicParam);
- if(gsTP)
- gaBTPs=aPaths;
- else{
- var sPath=getClosestTocPath(aPaths);
- if(sPath!=null)
- {
- gsTP=sPath;
- setTimeout("syncInit()",1);
- }
- }
- }
-
- function window_OnLoad()
- {
- if(gsBgImage&&gsBgImage.length>0)
- {
- document.body.background=gsBgImage;
- }
- if(gsBgColor&&gsBgColor.length>0)
- {
- document.body.bgColor=gsBgColor;
- }
- loadToc();
- var oMsg=new whMessage(WH_MSG_SHOWTOC,this,1,null)
- SendMessage(oMsg);
- }
-
- function loadImages()
- {
- if(giBookClose)
- {
- gaImgs[gnImages]=giBookClose;
- gnImages++;
- }
- if(giBookOpen)
- {
- gaImgs[gnImages]=giBookOpen;
- gnImages++;
- }
- if(giBookItem)
- {
- gaImgs[gnImages]=giBookItem;
- gnImages++;
- }
- if(giURLItem)
- {
- gaImgs[gnImages]=giURLItem;
- gnImages++;
- }
- if(giNewBookClose)
- {
- gaImgs[gnImages]=giNewBookClose;
- gnImages++;
- }
- if(giNewBookOpen)
- {
- gaImgs[gnImages]=giNewBookOpen;
- gnImages++;
- }
- if(giNewBookItem)
- {
- gaImgs[gnImages]=giNewBookItem;
- gnImages++;
- }
- if(giNewURLItem)
- {
- gaImgs[gnImages]=giNewURLItem;
- gnImages++;
- }
- if(gnImages>0)
- {
- setTimeout("loadDataAfter();",1000);
- loadImage(gaImgs[0]);
- }
- else
- loadDataAfter();
- }
-
- function loadImage(sURL)
- {
- var oImg=new Image();
- oImg.onload=checkImageLoading;
- oImg.onerror=errorImageLoading;
- oImg.src=_getFullPath(gaProj[0].sPPath,sURL);
- }
-
- function loadDataAfter()
- {
- if(!gbLoadData)
- {
- gbLoadData=true;
- loadTData();
- }
- }
-
- function errorImageLoading()
- {
- gnLoadedImages++;
- if(gnImages==gnLoadedImages)
- loadDataAfter();
- else
- loadImage(gaImgs[gnLoadedImages]);
- }
-
- function checkImageLoading()
- {
- gnLoadedImages++;
- if(gnImages==gnLoadedImages)
- loadDataAfter();
- else
- loadImage(gaImgs[gnLoadedImages]);
- }
-
- function window_unload()
- {
- UnRegisterListener2(this,WH_MSG_PROJECTREADY);
- UnRegisterListener2(this,WH_MSG_SYNCTOC);
- UnRegisterListener2(this,WH_MSG_SHOWTOC);
- }
-
- function onSendMessage(oMsg)
- {
- if(oMsg)
- {
- var nMsgId=oMsg.nMessageId;
- if(nMsgId==WH_MSG_PROJECTREADY)
- {
- loadToc();
- }
- else if(nMsgId==WH_MSG_SYNCTOC)
- {
- if(gbReady)
- {
- syncWithPaths(oMsg.oParam);
- }
- }
- else if(nMsgId==WH_MSG_SHOWTOC)
- {
- if(!gbNav6)
- document.body.focus();
- }
- }
- return true;
- }
-
- if(window.gbWhUtil&&window.gbWhVer&&window.gbWhMsg&&window.gbWhProxy)
- {
- RegisterListener2(this,WH_MSG_PROJECTREADY);
- RegisterListener2(this,WH_MSG_SYNCTOC);
- RegisterListener2(this,WH_MSG_SHOWTOC);
- goFont=new whFont("Verdana","8pt","#000000","normal","normal","none");
- goHFont=new whFont("Verdana","8pt","#007f00","normal","normal","underline");
-
- window.onload=window_OnLoad;
- window.onbeforeunload=window_BUnload;
- window.onunload=window_unload;
- gbWhTHost=true;
- }
- else
- document.location.reload();